GH-48750: [CI][Documentation] Disable Unity build for OpenTelemetry#48751
GH-48750: [CI][Documentation] Disable Unity build for OpenTelemetry#48751raulcd merged 2 commits intoapache:mainfrom
Conversation
…elemetry symbol collision in docs build
|
|
|
@github-actions crossbow submit test-debian-*-docs |
|
Revision: 5cbafac Submitted crossbow builds: ursacomputing/crossbow @ actions-71a6b31f76
|
|
Can we use this instead? diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 8a26b46d0b..d25aa01b62 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -3724,6 +3724,8 @@ function(build_opentelemetry)
prepare_fetchcontent()
+ # TODO: Add the reason why we need to disable unity build...
+ set(CMAKE_UNITY_BUILD FALSE)
set(OTELCPP_PROTO_PATH "${opentelemetry_proto_SOURCE_DIR}")
set(WITH_EXAMPLES OFF)
set(WITH_OTLP_HTTP ON) |
|
Ohh let me try! |
|
@github-actions crossbow submit test-debian-*-docs |
|
Revision: 5703dc4 Submitted crossbow builds: ursacomputing/crossbow @ actions-3921253546
|
|
@github-actions crossbow submit preview-docs |
raulcd
left a comment
There was a problem hiding this comment.
Thanks for the change! LGTM.
I am triggering the preview-docs job which seems to fail with the same issue to validate, will merge once the job finishes
|
Revision: 5703dc4 Submitted crossbow builds: ursacomputing/crossbow @ actions-0d86636019
|
|
seems passing fine 👍 |
|
Awesomeness! |
|
After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit 4edefc3. There weren't enough matching historic benchmark results to make a call on whether there were regressions. The full Conbench report has more details. |
Rationale for this change
After commit cbd48a4 migrated
OpenTelemetryfromExternalProjecttoFetchContent, the documentation build started failing with symbol redefinition errors:FetchContentintegratesOpenTelemetryinto the parent CMake configuration, causing it to inheritCMAKE_UNITY_BUILD=ON. Unity builds combine multiple.pb.ccfiles into a single compilation unit, which causes collision ofstaticsymbols (likeschemas[]andfile_default_instances[]) that exist in eachprotobuf-generatedfile.What changes are included in this PR?
Added
set(CMAKE_UNITY_BUILD FALSE)in thebuild_opentelemetry()function incpp/cmake_modules/ThirdpartyToolchain.cmaketo disallow Unity build inprotobuf-generatedfiles.Are these changes tested?
Has to be tested via CI.
Are there any user-facing changes?
No, dev-only.